package com.lcl.jarvis.service;


import java.util.List;
import java.util.Map;

import com.lcl.jarvis.dto.PersonInfoDDTO;
import com.lcl.jarvis.dto.PersonInfoDQueryDTO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author licl
 * @since 2024-05-16
 */
public interface PersonInfoDService {
	/**
	 * 简单分页查询
	 *
     * @param pageNumber 页码
     * @param pageSize 每页数量
     * @param sort 正序/倒序
     * @param order 排序字段-属性名
	 * @param personInfoD
	 * @return
	 */
	Map<String,Object> queryPage(PersonInfoDQueryDTO personInfoD);

    /**
     * 查询所有信息
     *
     * @param personInfoD 参数 PersonInfoDQueryDTO 对象
     * @return 分页对象
     */
    List<PersonInfoDDTO> queryAll(PersonInfoDQueryDTO personInfoD);

    /**
     * 通过ID查询
     *
     * @param id ID
     * @return PersonInfoD
     */
    PersonInfoDDTO queryById(String id);

    /**
     * 添加
     *
     * @param personInfoD DTO
     * @return PersonInfoDDTO
     */
    PersonInfoDDTO save(PersonInfoDDTO personInfoD);

    /**
     * 更新
     *
     * @param personInfoD DTO
     * @return PersonInfoDDTO
     */
    PersonInfoDDTO update(PersonInfoDDTO personInfoD);

    /**
     * 删除
     *
     * @param id 主键
     * @return success/false
     */
    void delete(String id);

    /**
     *  读取身份证信息
     *   身份证信息存储在身份证照片中，需要读取身份证信息，并将信息存储到数据库中。
     *   身份证信息包括：姓名、性别、出生日期、住址、身份证号码、签发机关、有效期限、签发日期、签发次数。
     *   身份证信息读取后，需要将信息存储到数据库中，以便后续查询。
     *   身份证信息读取的过程需要调用第三方接口，如：身份证识别API、身份证信息查询API等。
     */
    PersonInfoDDTO readIdCardInfo();
}

